/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.LinkedList;

/**
 *
 * @author Melida
 */
public class AccesoDatosAsociarCompetencia {

    Connection conexion;
    ResultSet consulta;
    LinkedList<Competencia> competencias = new LinkedList<Competencia>();
    LinkedList<Curso> cursos = new LinkedList<Curso>();

    public AccesoDatosAsociarCompetencia() {
    }

    public void conectar() {
        try {
            Class.forName("org.postgresql.Driver");
            conexion = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/sistemaEvaluaciones", "postgres", "admin");
            System.out.println("Se conecto a la base de datos");
        } catch (Exception e) {
            System.out.println("No se pudo conectar a la base de datos " + e);
        }
    }

    public void desconectar() {
        try {
            consulta.close();
            conexion.close();
            System.out.println("Se desconecto correctamente de la base de datos");
        } catch (Exception e) {
            System.out.println("No se pudo desconectar de la base de datos " + e);
        }
    }

    public boolean insertarAsociacion(String idCompetencia, String idCurso) {
        try {
            conectar();
            conexion.createStatement().executeUpdate("insert into tblcursos_competencias values('" + idCompetencia + "','" + idCurso + "')");
            desconectar();
            return true;
        } catch (Exception e) {
            System.out.println("Error al intentar insertar una evaluacion: " + e);
        }
        return false;
    }

    public String autoCompleteCompetencias() {
        String s = new String();
        s = autoCompletar("Select * from tbl_competencias", 1, 1, 0, 0);
        if (s != null) {
            return s;
        }
        return null;
    }

    public String autoCompleteCursos() {
        String s = new String();
        s = autoCompletar("Select * from tbl_cursos", 1, 1, 0, 0);
        if (s != null) {
            return s;
        }
        return null;
    }

    public String autoCompletar(String sql, int cantidad, int c1, int c2, int c3) {
        String s = new String();
        conectar();
        try {
            Statement st = conexion.createStatement();
            consulta = st.executeQuery(sql);
            while (consulta.next()) {
                switch (cantidad) {
                    case 1: {
                        s = s + consulta.getString(c1) + "-";
                        break;
                    }
                    case 2: {
                        s = s + consulta.getString(c1) + " " + consulta.getString(c2) + "-";
                        break;
                    }
                    case 3: {
                        s = s + consulta.getString(c1) + " " + consulta.getString(c2) + " " + consulta.getString(c3) + "-";
                        break;
                    }
                }
            }
            desconectar();
        } catch (SQLException e) {
            s = e.toString();
            return s;
        }
        return s;
    }
}
